/**
 * @param {Function} Singleton 自执行函数
 * @param {Object} instance 单例
 * @returns {Object}
 * @description 
 *	单例模式是一种用于创建只有一个实例的对象的设计模式。这通常用于确保只有一个对象管理某些资源，如全局配置或数据库连接
 */
let Singleton = (function() { //使用闭包来创建一个IIFE（立即调用函数表达式）
	let instance;

	function createInstance() {
		let object = new Object("I am the instance");
		return object;
	}

	return { //返回一个对象字面量
		getInstance: function() { //创建并返回单例对象
			if (!instance) {
				instance = createInstance();
			}
			return instance;
		}
	};
})();

let instance1 = Singleton.getInstance();
let instance2 = Singleton.getInstance();

console.log(instance1 === instance2); // 输出：true